package com.kayt.cyberBar.cuser.business.service;

import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;

import com.kayt.cyberBar.common.PageData;
import com.kayt.cyberBar.common.ServerResponse;
import com.kayt.cyberBar.cuser.business.entity.req.vo.BUserReqVO;
import com.kayt.cyberBar.cuser.business.entity.req.vo.UserLoginByPasswordReqVO;
import com.kayt.cyberBar.cuser.business.entity.req.vo.UserRegistReqVO;
import com.kayt.cyberBar.cuser.business.entity.rsp.vo.MyPageAssessDataRspVO;
import com.kayt.cyberBar.cuser.business.entity.rsp.vo.MyPageOrderRspVO;
import com.kayt.cyberBar.cuser.business.entity.rsp.vo.TokenAuthResultVO;
import com.kayt.cyberBar.cuser.business.entity.rsp.vo.UserDetailRspVO;
import com.kayt.cyberBar.cuser.business.entity.rsp.vo.UserGroupByFirstCaracterVO;
import com.kayt.cyberBar.cuser.business.entity.rsp.vo.UserLoginByPasswordRspVO;
import com.kayt.cyberBar.cuser.business.entity.rsp.vo.UserOperateRspVO;

@Path("/IUserService")
public interface IUserService {
	
	/**
	 * 新怎该用户数据信息接口
	 * @param bUserReqVO
	 * @return
	 */
	@POST
	@Path("addUser.do")
	@Produces({"application/json" + ";charset=UTF-8"})
	@Consumes({"application/json" })
	ServerResponse<String> addUser(BUserReqVO bUserReqVO);
	
	/**
	 * 用户注册接口
	 * @param userRegistReqVO
	 * @return
	 */
	@POST
	@Path("registUser.do")
	@Produces({"application/json" + ";charset=UTF-8"})
	@Consumes({"application/json"})
	ServerResponse<String> registUser(UserRegistReqVO userRegistReqVO);
	
	/**
	 * 用户密码登陆接口
	 * @param userLoginReqVO
	 * @return
	 */
	@POST
	@Path("userLogin.do")
	@Produces({"application/json" + ";charset=UTF-8"})
	@Consumes({"application/json"})
	ServerResponse<UserLoginByPasswordRspVO> userLogin(UserLoginByPasswordReqVO userLoginReqVO);
	
	/**
	 * 查询用户详细信息接口
	 * @param id
	 * @return
	 */
	@GET
	@Path("getUserInfoById.do")
	@Produces({"application/json" + ";charset=UTF-8"})
	@Consumes({"application/json"})
	ServerResponse<UserDetailRspVO> getUserInfoByID(@QueryParam("")BUserReqVO userReqVO);
	
	/**
	 * 更新用户信息接口
	 * @param bUserReqVO
	 * @return
	 */
	@POST
	@Path("updateUser.do")
	@Produces({"application/json" + ";charset=UTF-8"})
	@Consumes({"application/json"})
	ServerResponse<UserDetailRspVO> updateUser(BUserReqVO bUserReqVO);
	
	/**
	 * 更新用户状态信息接口
	 * @param bUserReqVO
	 * @return
	 */
	@POST
	@Path("updateUserStatus.do")
	@Produces({"application/json" + ";charset=UTF-8"})
	@Consumes({"application/json"})
	ServerResponse<String> updateUserStatus(BUserReqVO bUserReqVO);
	
	/**
	 * 根据密码 更新密码接口
	 * @param userReqVO
	 * @return
	 */
	@POST
	@Path("updateUserPassword.do")
	@Produces({"application/json" + ";charset=UTF-8"})
	@Consumes({"application/json"})
	ServerResponse<String> updateUserPasswork(BUserReqVO userReqVO);
	
	/**
	 * 获取用户操作信息数据接口
	 * @param storeCode
	 * @return
	 */
	@GET
	@Path("getUserOperateData.do")
	@Produces({"application/json" + ";charset=UTF-8"})
	@Consumes({"application/json"})
	ServerResponse<UserOperateRspVO> getUserOperateData(@QueryParam("storeCode")String storeCode);
	
	/**
	 * 获取用户某日销售数据接口
	 * @param date
	 * @param userCode
	 * @return
	 */
	@GET
	@Path("getItemSaleByUserCode.do")
	@Produces({"application/json" + ";charset=UTF-8"})
	@Consumes({"application/json"})
	public ServerResponse<MyPageOrderRspVO> getItemSaleByUserCode(@QueryParam("date")String date,@QueryParam("userCode")String userCode);
	
	/**
	 * 获取我的页面考核数据
	 * @param storeCode
	 * @param userCode
	 * @return
	 */
	@GET
	@Path("getMyPageAssessData.do")
	@Produces({"application/json" + ";charset=UTF-8"})
	@Consumes({"application/json"})
	public ServerResponse<MyPageAssessDataRspVO> getMyPageAssessData(@QueryParam("storeCode")String storeCode,@QueryParam("userCode")String userCode);
	
	@GET
	@Path("tokenAuth.do")
	@Produces({"application/json" + ";charset=UTF-8"})
	@Consumes({"application/json"})
	ServerResponse<TokenAuthResultVO> tokenAuth(@QueryParam("token")String token);
	
	@GET
	@Path("getUserByFristCaracter.do")
	@Produces({"application/json" + ";charset=UTF-8"})
	@Consumes({"application/json"})
	public ServerResponse<UserGroupByFirstCaracterVO> getUserByFristCaracter(@QueryParam("")BUserReqVO userReqVO);
	
	@GET
	@Path("queryLoginStatus.do")
	@Produces({"application/json" + ";charset=UTF-8"})
	@Consumes({"application/json"})
	public ServerResponse queryLoginStatus(@QueryParam("")UserLoginByPasswordReqVO loginReqVO);
	
	@GET
	@Path("logOut.do")
	@Produces({"application/json" + ";charset=UTF-8"})
	@Consumes({"application/json"})
	public ServerResponse logOut(@QueryParam("")UserLoginByPasswordReqVO loginReqVO);
}
